Strong Termination of Logic Programs
نویسنده
چکیده
We study a powerful class of logic programs which terminate for a large class of goals. Both classes are characterized in a natural way in terms of mappings from variable-free atoms to natural numbers. Based on this idea we present a technique which improves the termination behaviour and allows a more multidirectional use of Prolog programs. The class of logic programs is shown to be strong enough to compute every total recursive function. The class of goals considerably extends the variable-free ones.
منابع مشابه
Fast offline partial evaluation of logic programs
One of the most important challenges in partial evaluation is the design of automatic methods for ensuring the termination of the process. In this work, we introduce sufficient conditions for the strong (i.e., independent of a computation rule) termination and quasi-termination of logic programs which rely on the construction of size-change graphs. We then present a fast binding-time analysis t...
متن کاملOn Termination of Meta-Programs
The termmeta-programming refers to the ability of writing programs that have other programs as data and exploit their semantics [4]. The choice of logic programming as a basis for meta-programming offers a number of practical and theoretical advantages. One of them is the possibility of tackling critical foundation problems of meta-programming within a framework with a strong theoretical basis....
متن کاملFast and Accurate Strong Termination Analysis with an Application to Partial Evaluation
A logic program strongly terminates if it terminates for any selection rule. Clearly, considering a particular selection rule—like Prolog’s leftmost selection rule—allows one to prove more goals terminating. In contrast, a strong termination analysis gives valuable information for those applications in which the selection rule cannot be fixed in advance (e.g., partial evaluation, dynamic select...
متن کاملAutomated termination analysis for logic programs with cut
Termination is an important and well-studied property for logic programs. However, almost all approaches for automated termination analysis focus on definite logic programs, whereas real-world Prolog programs typically use the cut operator. We introduce a novel pre-processing method which automatically transforms Prolog programs into logic programs without cuts, where termination of the cut-fre...
متن کاملTermination Analysis of Logic Programs with Cut Using Dependency Triples∗
In very recent work, we introduced a non-termination preserving transformation from logic programs with cut to definite logic programs. In this paper we extend the transformation such that logic programs with cut are transformed into dependency triple problems instead of definite logic programs. By the implementation of our new method and extensive experiments, we show that the power of automat...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- J. Log. Program.
دوره 15 شماره
صفحات -
تاریخ انتشار 1993